#include "minishell.h"

void procesar_comando(char* comando, char **parametros,int indice_parametro)
{
    int temp;
    if(strcmp(comando,"exit")==0)
    {
        /* No hace nada */
    }
    else if(strcmp(comando,"pwd")==0) mi_pwd();
    else if(strcmp(comando,"cd")==0)
    {
        if(indice_parametro<=0)
        {
            /*No hace nada*/
        }
        else mi_cd(parametros[0]);
    }
    else if(strcmp(comando,"mkdir")==0)
    {
        if(indice_parametro== 1) mi_mkdir(parametros[0],0755);
        else if(indice_parametro == 2)
        {
            temp = atoi(parametros[1]);
            mi_mkdir(parametros[0],temp);

        }
        else printf("mkdir error: Falta parámetros\n");
    }
    else if(strcmp(comando,"rmdir")==0)
    {
        if(indice_parametro==1) mi_rmdir(parametros[0]);
        else printf("rmdir error: Falta parámetros\n");
    }
    else if(strcmp(comando,"ls")==0) mi_ls(parametros,indice_parametro);
    else if(strcmp(comando,"chmod")==0) mi_chmod(parametros,indice_parametro);
    else if (strcmp(comando,"help")==0) mi_help();
    else if(strcmp(comando,"no_hace_nada")==0) {/* No hace nada */}
    else if(strcmp(comando,"clear")==0) mi_clear();
    else
    {
        printf("Otros comandos no están soportados\n");
        printf("Teclear 'help' para obtener más información\n");
        printf("---------------------------------------------------\n");
    }

}
////////////////////////////////////////////////////////////////////////
void asignar_memoria_array(char *str,int numero_elemento)
{
    str = (char *)malloc(numero_elemento * sizeof(char));
    if(str==NULL) exit(-1);
}

void liberar_memoria_array(char *str)
{
    free(str);
}

void asignar_memoria_tabla(char **str, int numero_fila, int numero_columna)
{
    int i = 0;
    str = (char **)malloc(numero_fila*sizeof(char *));
    if(str==NULL) exit(-1);
    for (i = 0; i < numero_fila; i++)
    {
        str[i] = (char *)malloc(numero_columna*sizeof(char));
        if(str[i]==NULL) exit(-1);
    }
}

void liberar_memoria_tabla(char **str, int numero_fila)
{
    int i;
    for (i=0; i<numero_fila; i++)
    {
        free(str[i]);
    }
    free(str);
}


void visualizar_parametros(char **str,int numero_elemento)
{
    int i;
    if(numero_elemento <= 0) printf("Sin parámetro\n");
    else
    {
        for (i=0; i<numero_elemento; i++)
        {
            printf("%s\n",str[i]);
        }
    }
}


////////////////////////////////////////////////////////////////////

